package com.study.spark.scala.chapter07

import scala.collection.mutable


object Scala08_Collection_Map_1{
  def main(args: Array[String]): Unit = {
    // TODO 集合 - Option
    /*
    java中的hashMap获取一个不存在的k，返回一个null
    允许空值空键的存在，所有有空指针异常的问题

    Scala中为了避免空指针异常，设计了Option（选项）这一概念
     */
    val map =Map("a" -> 1,"b" -> 2,"c" -> 3,"a" -> 10,"d" -> 4,"e" -> 4)
    val maybeInt1: Option[Int] = map.get("a")
    val maybeInt2: Option[Int] = map.get("v")
    if (maybeInt1.isEmpty){
      println("没有对应的K值："+maybeInt1.get)
    } else {
      println("k对应的v是："+maybeInt1.get)//k对应的v是：10
    }
    if (maybeInt2.isEmpty){
//      println("没有对应的K值："+maybeInt2.get)//java.util.NoSuchElementException
      println("没有对应的K值："+maybeInt2.getOrElse(0))//没有对应的K值：0
    } else {
      println("k对应的v是："+maybeInt2.get)
    }

    // getOrElse可以一步调用
    println(map.getOrElse("e", 0))//4
    println(map.getOrElse("x", 0))//0

  }
}
